package cn.fl.project.transform;

import java.util.ArrayList;
import java.util.List;

import cn.cmm.base.framework.utils.CollectionUtils;
import cn.fl.project.dto.PrjPrdPaySchTMDTO;
import cn.fl.project.vo.PrjPrdPaySchTMVO;


 /**
 * @Description: 项目产品支付表主信息表（挂靠公司版） 转换器
 * @Description: VO是客户端传递数据到服务端进行转换的数据 
 * @Description: VO转换数据变成DTO传递到服务端 
 * @Description: VO不能在服务端出现
 */
public class PrjPrdPaySchTMVOTransform {


	/**
	 * DTO 转  VO
	 * @param po PrjPrdPaySchTMDTO
	 * @return PrjPrdPaySchTMVO
	 */
	public static PrjPrdPaySchTMVO toVO(PrjPrdPaySchTMDTO dto) {
		PrjPrdPaySchTMVO  vo = null;
		if (dto != null) { 
			vo = new PrjPrdPaySchTMVO();
			vo.setId(dto.getId());
			vo.setPrjId(dto.getPrjId());//项目ID
			vo.setCstId(dto.getCstId());//客户ID
			vo.setPaySchNo(dto.getPaySchNo());//支付表编号
			vo.setTotLsItmAmt(dto.getTotLsItmAmt());//租赁物件总价值（元）
			vo.setContAmt(dto.getContAmt());//合同总额（元）
			vo.setLsPd(dto.getLsPd());//租赁期数
			vo.setLsPdUntCd(dto.getLsPdUntCd());//租赁期数单位（PRJ0010）
			vo.setAnnIntRatePct(dto.getAnnIntRatePct());//租赁年利率（%）
			vo.setIntRateRsPct(dto.getIntRateRsPct());//利率上浮比例（%）
			vo.setPayWayCd(dto.getPayWayCd());//支付方式（PRJ0009）
			vo.setActLsAmt(dto.getActLsAmt());//实际融资租赁价值（元）
			vo.setIrrPct(dto.getIrrPct());//实际收益率(IRR)
			vo.setEachEstRntAmt(dto.getEachEstRntAmt());//每期预估租金（元）
			vo.setLsCalWayCd(dto.getLsCalWayCd());//租赁计算方式（PRJ0012）
			vo.setIntRateWayCd(dto.getIntRateWayCd());//租赁年利率计算方式（PRJ0011）
			vo.setLsCoe(dto.getLsCoe());//租赁系数
			vo.setDpstHdlWayCd(dto.getDpstHdlWayCd());//保证金处理方式（PRJ0013）
			vo.setExpHdlWayCd(dto.getExpHdlWayCd());//租赁期满处理方式（PRJ0014）
			vo.setNoPayWayCd(dto.getNoPayWayCd());//不还款处理方式（PRJ0015）
			vo.setLsDt(dto.getLsDt());//起租日
			vo.setFstRepayDt(dto.getFstRepayDt());//首期租金还款日
			vo.setIsOdPay(dto.getIsOdPay());//是否逾期（SYS0021）
			vo.setStlAmt(dto.getStlAmt());//结清金额（元）
			vo.setStlPd(dto.getStlPd());//结清期次
			vo.setIsDel(dto.getIsDel());//是否删除（1：是，0：否）

			vo.setCrtTm(dto.getCrtTm());//创建时间
			vo.setCrtUsrId(dto.getCrtUsrId());//创建人
			vo.setMdfTm(dto.getMdfTm());//修改时间
			vo.setMdfUsrId(dto.getMdfUsrId());//修改人
		}
		return vo;
	}

	/**
	 * VO 转 DTO
	 * @param dto PrjPrdPaySchTMVO
	 * @return PrjPrdPaySchTMDTO
	 */
	public static PrjPrdPaySchTMDTO toDTO(PrjPrdPaySchTMVO vo) {
		PrjPrdPaySchTMDTO dto = null;
		if (vo != null) {
			dto = new PrjPrdPaySchTMDTO();
			dto.setId(vo.getId());
			dto.setPrjId(vo.getPrjId());//项目ID
			dto.setCstId(vo.getCstId());//客户ID
			dto.setPaySchNo(vo.getPaySchNo());//支付表编号
			dto.setTotLsItmAmt(vo.getTotLsItmAmt());//租赁物件总价值（元）
			dto.setContAmt(vo.getContAmt());//合同总额（元）
			dto.setLsPd(vo.getLsPd());//租赁期数
			dto.setLsPdUntCd(vo.getLsPdUntCd());//租赁期数单位（PRJ0010）
			dto.setAnnIntRatePct(vo.getAnnIntRatePct());//租赁年利率（%）
			dto.setIntRateRsPct(vo.getIntRateRsPct());//利率上浮比例（%）
			dto.setPayWayCd(vo.getPayWayCd());//支付方式（PRJ0009）
			dto.setActLsAmt(vo.getActLsAmt());//实际融资租赁价值（元）
			dto.setIrrPct(vo.getIrrPct());//实际收益率(IRR)
			dto.setEachEstRntAmt(vo.getEachEstRntAmt());//每期预估租金（元）
			dto.setLsCalWayCd(vo.getLsCalWayCd());//租赁计算方式（PRJ0012）
			dto.setIntRateWayCd(vo.getIntRateWayCd());//租赁年利率计算方式（PRJ0011）
			dto.setLsCoe(vo.getLsCoe());//租赁系数
			dto.setDpstHdlWayCd(vo.getDpstHdlWayCd());//保证金处理方式（PRJ0013）
			dto.setExpHdlWayCd(vo.getExpHdlWayCd());//租赁期满处理方式（PRJ0014）
			dto.setNoPayWayCd(vo.getNoPayWayCd());//不还款处理方式（PRJ0015）
			dto.setLsDt(vo.getLsDt());//起租日
			dto.setFstRepayDt(vo.getFstRepayDt());//首期租金还款日
			dto.setIsOdPay(vo.getIsOdPay());//是否逾期（SYS0021）
			dto.setStlAmt(vo.getStlAmt());//结清金额（元）
			dto.setStlPd(vo.getStlPd());//结清期次
			dto.setIsDel(vo.getIsDel());//是否删除（1：是，0：否）

			dto.setCrtTm(vo.getCrtTm());//创建时间
			dto.setCrtUsrId(vo.getCrtUsrId());//创建人
			dto.setMdfTm(vo.getMdfTm());//修改时间
			dto.setMdfUsrId(vo.getMdfUsrId());//修改人
		}
		return dto;
	}
	
	/**
	 * DTO集合 转 VO集合
	 * @param List<PrjPrdPaySchTMDTO>
	 * @return List<PrjPrdPaySchTMVO>
	 */
	public static List<PrjPrdPaySchTMVO> toVOList(List<PrjPrdPaySchTMDTO> list) {
		List<PrjPrdPaySchTMVO>  voList = new ArrayList<PrjPrdPaySchTMVO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (PrjPrdPaySchTMDTO dto : list) {
				voList.add(toVO(dto));
			}
		}
		return voList;
	}
	
	/**
	 * VO集合 转 DTO集合
	 * @param list List<PrjPrdPaySchTMVO>
	 * @return List<PrjPrdPaySchTMDTO>
	 */
	public static List<PrjPrdPaySchTMDTO> toDTOList(List<PrjPrdPaySchTMVO> list) {
		List<PrjPrdPaySchTMDTO>  dtoList = new ArrayList<PrjPrdPaySchTMDTO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (PrjPrdPaySchTMVO vo : list) {
				dtoList.add(toDTO(vo));
			}
		}
		return dtoList;
	}
}
